package servlet;

import java.io.IOException;
import java.io.PrintWriter;
import java.sql.SQLException;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import manejadores.ManejadorTransformador;

import censo.db;
import entidades.Transformador;

/**
 * Servlet implementation class SrvTransformador
 */
@WebServlet(description = "Servlet transformador", urlPatterns = { "/SrvTransformador" })
public class SrvTransformador extends HttpServlet {
	private static final long serialVersionUID = 1L;
       
    /**
     * @see HttpServlet#HttpServlet()
     */
    public SrvTransformador() {
        super();
        // TODO Auto-generated constructor stub
    }
    
    protected void ProcesarPeticion(HttpServletRequest request,
			HttpServletResponse response) throws ServletException, IOException {
    	response.setContentType("text/html;charset=ISO-8859-1");
    	PrintWriter out = response.getWriter();

		String operacion = (String) request.getParameter("operacion");
		
		db conexion = null;
		
		try {
			if (operacion.equals("add")) {
				conexion = new db();
				
				String codigo = (String)request.getParameter("codigo");
				String capacidad = (String)request.getParameter("capacidad");
				String tipo = (String)request.getParameter("tipo");
				String tierra = (String)request.getParameter("tierra");
				String direccion = (String)request.getParameter("direccion");
				String latitud = (String)request.getParameter("latitud");
				String longitud = (String)request.getParameter("longitud");
				String altitud = (String)request.getParameter("altitud");
				String cc_cantidad = (String)request.getParameter("cc_cantidad");
				String cc_tecnologia = (String)request.getParameter("cc_tecnologia");
				String pr_cantidad = (String)request.getParameter("pr_cantidad");
				String pr_tecnologia = (String)request.getParameter("pr_tecnologia");
				String tm_electronico = (String)request.getParameter("tm_electronico");
				String tm_tps= (String)request.getParameter("tm_tps");
				String tm_tcs = (String)request.getParameter("tm_tcs");
				String notas = (String)request.getParameter("notas");
				String usuario = (String)request.getParameter("usuario");
				
				
				Transformador transformador = new Transformador();
				transformador.setCodigo(codigo);
				transformador.setCapacidad(capacidad);
				transformador.setTipo(tipo);
				transformador.setTierra(tierra);
				transformador.setDireccion(direccion);
				transformador.setLatitud(latitud);
				transformador.setLongitud(longitud);
				transformador.setAltitud(altitud);
				transformador.setCc_cantidad(cc_cantidad);
				transformador.setCc_tecnologia(cc_tecnologia);
				transformador.setPr_cantidad(pr_cantidad);
				transformador.setPr_tecnologia(pr_tecnologia);
				transformador.setTm_electronico(tm_electronico);
				transformador.setTm_tps(tm_tps);
				transformador.setTm_tcs(tm_tcs);
				transformador.setNotas(notas);
				transformador.setUsuario(usuario);
				
				ManejadorTransformador mt = new ManejadorTransformador(transformador,conexion);
				if (mt.Add()) {
					out.print("OK");
				}else {
					out.print("Error al procesar la solicitud");
				}
				
				
			}

			if (operacion.equals("update")) {
				conexion = new db();
				String key = (String)request.getParameter("key");
				String codigo = (String)request.getParameter("codigo");
				String capacidad = (String)request.getParameter("capacidad");
				String tipo = (String)request.getParameter("tipo");
				String tierra = (String)request.getParameter("tierra");
				String direccion = (String)request.getParameter("direccion");
				String latitud = (String)request.getParameter("latitud");
				String longitud = (String)request.getParameter("longitud");
				String altitud = (String)request.getParameter("altitud");
				String cc_cantidad = (String)request.getParameter("cc_cantidad");
				String cc_tecnologia = (String)request.getParameter("cc_tecnologia");
				String pr_cantidad = (String)request.getParameter("pr_cantidad");
				String pr_tecnologia = (String)request.getParameter("pr_tecnologia");
				String tm_electronico = (String)request.getParameter("tm_electronico");
				String tm_tps= (String)request.getParameter("tm_tps");
				String tm_tcs = (String)request.getParameter("tm_tcs");
				String notas = (String)request.getParameter("notas");
				String usuario = (String)request.getParameter("usuario");
				
				
				Transformador transformador = new Transformador();
				transformador.setCodigo(codigo);
				transformador.setCapacidad(capacidad);
				transformador.setTipo(tipo);
				transformador.setTierra(tierra);
				transformador.setDireccion(direccion);
				transformador.setLatitud(latitud);
				transformador.setLongitud(longitud);
				transformador.setAltitud(altitud);
				transformador.setCc_cantidad(cc_cantidad);
				transformador.setCc_tecnologia(cc_tecnologia);
				transformador.setPr_cantidad(pr_cantidad);
				transformador.setPr_tecnologia(pr_tecnologia);
				transformador.setTm_electronico(tm_electronico);
				transformador.setTm_tps(tm_tps);
				transformador.setTm_tcs(tm_tcs);
				transformador.setNotas(notas);
				transformador.setUsuario(usuario);
				
				ManejadorTransformador mt = new ManejadorTransformador(transformador,conexion);
				if (mt.Update(key)) {
					out.print("OK");
				}else {
					out.print("Error al procesar la solicitud");
				}
				
				
			}
			
			if (operacion.equals("remove")) {
				String key = (String)request.getParameter("key");
				ManejadorTransformador mt = new ManejadorTransformador(conexion);
				if (mt.Remove(key)) {
					out.print("OK");
				}else {
					out.print("Error al procesar la solicitud");
				}
			}

		
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			out.print("Error de conexion con el servidor: "
					+ e.getMessage());
		} finally { 
			if (conexion != null) {
				try {
					conexion.Close();
				} catch (SQLException e) {
					// TODO Auto-generated catch block
					out.print(e.getMessage());
				}
			}
		}
		
		
		
    }

	/**
	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		this.ProcesarPeticion(request, response);
	}

	/**
	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		this.ProcesarPeticion(request, response);
	}

}
